package io;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.charset.StandardCharsets;

/**
 * 将io包下的所有java文件都读取出来输出到控制台
 *
 * 提示:
 * File的listFiles方法可以获取一个目录中的所有子项
 * 因此可以先创建一个File对象表示io目录。然后获取该目录中的所有.java文件
 * 然后遍历每一个子项利用ReadStringDemo案例的方式读取该文件输出到控制台即可
 */
public class Test2 {
    public static void main(String[] args) throws IOException {
        //创建目录对象
        File dir = new File("./src/main/java/io");
        //确定File对象是否是目录

        //创建文件数组, 将目录下的所有文件名放入数组中, 重写文件过滤器
        File[] files = dir.listFiles(f->f.getName().endsWith(".java"));
        //循环遍历数组
        for(File f : files){
            //创建文件输入流
            FileInputStream fis = new FileInputStream(f);

            //创建一个btye数组, 数组长度与文件长度一致, 用于存放文件数据二进制数据
            byte[] data = new byte[(int)f.length()];
            //用输入流中的read方法将文件内容读取到数组中
            fis.read(data);

            //将byte数组中的内容通过utf_8编译成String类型的字符串
            String line = new String(data, StandardCharsets.UTF_8);
            //打印字符串
            System.out.println(line);

            fis.close();
        }
    }
}